<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Livox SDK API: README.md Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="1.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Livox SDK API
   &#160;<span id="projectnumber">V2.1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_r_e_a_d_m_e_8md.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">README.md</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_r_e_a_d_m_e_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;# 1 Introduction</div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;Livox SDK is the software development kit designed for all Livox products. It is developed based on C/C++ following Livox SDK Communication Protocol, and provides easy-to-use C style API. With Livox SDK, users can quickly connect to Livox products and receive point cloud data. </div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;Livox SDK consists of Livox SDK communication protocol, Livox SDK core, Livox SDK API, Linux sample, and ROS demo. </div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;## Prerequisites</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;* Ubuntu 14.04/Ubuntu 16.04/Ubuntu 18.04, both x86 and ARM (Nvidia TX2)</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;* Windows 7/10, Visual Studio 2015/2017</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;* C++11 compiler</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;# 2 Livox SDK Communication Protocol</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;Livox SDK communication protocol opens to all users. It is the communication protocol between user programs and Livox products. The protocol consists of control commands and data format. Please refer to the [Livox SDK Communication Protocol](&lt;https://github.com/Livox-SDK/Livox-SDK/wiki/Livox-SDK-Communication-Protocol&gt;) for detailed information.</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;# 3 Livox SDK Core</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;Livox SDK provides the implementation of control commands and point cloud data transmission, as well as the C/C++ API. The basic structure of Livox SDK core is shown as below:</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;![Livox SDK Architecture](doc/images/sdk.png)</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;User Datagram Protocol (UDP) is used for communication between Livox SDK and LiDAR sensors. Please refer to the Livox SDK Communication Protocol for further information. Point cloud data handler supports point cloud data transmission, while command handler receives and sends control commands. And the C/C++ API is based on command handler and point cloud data handler.</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;The Livox LiDAR sensors can be connected to host directly or through the Livox Hub. Livox SDK supports both connection methods. When LiDAR units are connected to host directly, the host will establish communication with each LiDAR unit individually. And if the LiDAR units connect to host through Hub, then the host only communicates with the Livox Hub while the Hub communicates with each LiDAR unit.</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;# 4 Livox SDK API</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;Livox SDK API provides a set of C style functions which can be conveniently integrated in C/C++ programs. Please refer to the [Livox SDK API Reference](https://livox-sdk.github.io/Livox-SDK/) for further information.</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;## 4.1 Installation</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;The installation procedures in Ubuntu 18.04/16.04/14.04 LTS and Windows 7/10 are shown here as examples. For Ubuntu 18.04/16.04/14.04 32-bit LTS and Mac, you can get it in [Livox-SDK wiki](https://github.com/Livox-SDK/Livox-SDK/wiki).</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;### 4.1.1 Ubuntu 18.04/16.04/14.04 LTS</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;#### Dependencies</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;Livox SDK requires [CMake 3.0.0+](https://cmake.org/) as dependencies. You can install these packages using apt:</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;```</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;sudo apt install cmake pkg-config</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;```</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;#### Compile Livox SDK</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;In the Livox SDK directory, run the following commands to compile the project:</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;```</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;git clone https://github.com/Livox-SDK/Livox-SDK.git</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;cd Livox-SDK</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;sudo ./third_party/apr/apr_build.sh</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;cd build &amp;&amp; cmake ..</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;make</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;sudo make install</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;```</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;### 4.1.2 Windows 7/10</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;#### Dependencies</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;Livox SDK supports Visual Studio 2015/2017 and requires install [CMake 3.0.0+](https://cmake.org/) as dependencies.  </div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;In the Livox SDK directory, run the following commands to create the Visual Studio solution file. </div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;Generate the 32-bit project:</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;```</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;.\third_party\apr\apr_build.bat</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;cd build &amp;&amp; \</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;cmake ..</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;```</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;Generate the 64-bit project:</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;```</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;cd Livox-SDK</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;.\third_party\apr\apr_build.bat amd64</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;cd build &amp;&amp; \</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;cmake .. -G &quot;Visual Studio 15 2017 Win64&quot;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;```</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;#### Compile Livox SDK</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;You can now compile the Livox SDK in Visual Studio.</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;### 4.1.3 ARM-Linux Cross Compile</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;The procedure of cross compile Livox-SDK in ARM-Linux are shown below。</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;#### Dependencies</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;Host machine requires install cmake and gcc。You can install these packages using apt:</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;```</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;sudo apt install cmake gcc</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;```</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;#### Cross Compile Toolchain</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;If your ARM board vendor provides a cross compile toolchain, you can skip the following step of installing the toolchain and use the vendor-supplied cross compile toolchain instead.</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;The following commands will install C and C++ cross compiler toolchains for 32bit and 64bit ARM board. You need to install the correct toolchain for your ARM board. For 64bit SoC ARM board, only install 64bit toolchain, and for 32bit SoC ARM board, only install 32bit toolchain.</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;Install **ARM 32 bits cross compile toolchain**：</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;```</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;```</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;Install **ARM 64 bits cross compile toolchain**：</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;```</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;```</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;#### Cross Compile Livox-SDK</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;For  **ARM 32 bits toolchain**，In the Livox SDK directory，run the following commands to cross compile the project:</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;```</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;cd Livox-SDK</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;cd build &amp;&amp; \</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;cmake .. -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabi-g++</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;make</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;```</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;For **ARM 64 bits toolchain**，In the Livox SDK directory，run the following commands to cross compile the project:</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;```</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;cd Livox-SDK</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;cd build &amp;&amp; \</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;cmake .. -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;make</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;```</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;**Note:**</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;- gcc  cross compiler need to support C ++11 standard</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;## 4.2 Run Livox SDK Sample</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;Two samples are provided in Sample/Lidar and Sample/Hub, which demonstrate how to configure Livox LiDAR units and receive the point cloud data when directly connecting Livox SDK to LiDAR units or by using a Livox Hub, respectively. The sequence diagram is shown as below: </div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;![](doc/images/sample.png)</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;### 4.2.1 Ubuntu 18.04/16.04 /14.04 LTS</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;For Ubuntun 18.04/16.04/14.04 LTS, run the *lidar_sample* if connect with the LiDAR unit(s):</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;```</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;cd sample/lidar &amp;&amp; ./lidar_sample</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;```</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;or run the *hub_sample* if connect with the hub unit(s):</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;```</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;cd sample/hub &amp;&amp; ./hub_sample</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;```</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;### 4.2.2 Windows 7/10</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;After compiling the Livox SDK as shown in section 4.1.2, you can find `hub_sample.exe` or `lidar_sample.exe` in the {Livox-SDK}\build\sample\hub\Debug or {Livox-SDK}\build\sample\lidar\Debug folder, respectively, which can be run directly. </div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;Then you can see the information as below:</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;![](doc/images/sdk_init.png)</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;### 4.3 Connect to the specific LiDAR units</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;Samples we provided will connect all the broadcast device in you LAN in default.There are two ways to connect the specific units: </div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;* run sample with input options </div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;* edit the Broadcast Code list in source code</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;**NOTE:**</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;Each Livox LiDAR unit owns a unique Broadcast Code . The broadcast code consists of its serial number and an additional number (1,2, or 3). The serial number can be found on the body of the LiDAR unit (below the QR code).The Broadcast Code may be used when you want to connect to the specific LiDAR unit(s).  The detailed format is shown as below:</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;![Broadcast Code](doc/images/broadcast_code.png)</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;#### 4.3.1 Program Options</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;We provide the following program options for connecting the specific units and saving log file:</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;```</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;[-c]:Register LiDAR units by Broadcast Code. Connect the registered units ONLY. </div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;[-l]:Save the log file(In the executable file&#39;s directory).</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;[-h]:Show help.</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;```</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;Here is the example:</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;```</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;./lidar_sample -c &quot;00000000000002&amp;00000000000003&amp;00000000000004&quot; -l</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;./hub_sample -c &quot;00000000000001&quot; -l</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;```</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;#### 4.3.2 Edit Broadcast Code List</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; Comment the following code section:</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;```</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;/** Connect all the broadcast device. */</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;int lidar_count = 0;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;char broadcast_code_list[kMaxLidarCount][kBroadcastCodeSize];</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;```</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;Remove the comment of the following code section, set the BROADCAST_CODE_LIST_SIZE and replace the broadcast code lists in the `main.c` for both LiDAR sample ({Livox-SDK}/sample/lidar/main.c) and Hub sample ({Livox-SDK}/sample/hub/main.c) with the broadcast code of your devices before building.</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;```</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;/** Connect the broadcast device in list, please input the broadcast code and modify the BROADCAST_CODE_LIST_SIZE. */</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;/*#define BROADCAST_CODE_LIST_SIZE  3</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;int lidar_count = BROADCAST_CODE_LIST_SIZE;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;char broadcast_code_list[kMaxLidarCount][kBroadcastCodeSize] = {</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  &quot;000000000000002&quot;,</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;  &quot;000000000000003&quot;,</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;  &quot;000000000000004&quot;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;};*/</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;```</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;### 4.4 Generate the lvx file</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;We provide the C++ sample to generate the lvx file for hub and LiDAR unit(s). You can use the same way in `4.2.1` and `4.2.2` to run them.</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;#### 4.4.1 Program Options</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;You can alse use the program options in `4.3.1` to connect specific device and generate the log file, and we provide two new options for lvx file:</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;```</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;[-t] Time to save point cloud to the lvx file.(unit: s)</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;[-p] Get the extrinsic parameter from standard extrinsic.xml file(The same as viewer) in the executable file&#39;s directory.(Especially for LiDAR unit(s) as the hub will calculate the extrinsic parameter by itself)</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;```</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;Here is the example:</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;```</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;./lidar_lvx_sample -c &quot;00000000000002&amp;00000000000003&amp;00000000000004&quot; -l -t 10 -p</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;./hub_lvx_sample -c &quot;00000000000001&quot; -l -t 10</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;```</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;# 5 Support</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;You can get support from Livox with the following methods:</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;* Send email to dev@livoxtech.com with a clear description of your problem and your setup</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;* Github Issues</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="_r_e_a_d_m_e_8md.html">README.md</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
